package com.base.cn.platform.os.entity.op.coupon;

import com.base.cn.platform.os.common.mybatis.BaseEntity;
import com.base.cn.platform.os.common.mybatis.SqlExclude;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Map;
import java.util.TreeMap;

/**
 * 优惠编码表
 * Created by ll on 2018/05/09
 */
@Data
public class OpCouponCode extends BaseEntity {

    private BigDecimal couponId;//优惠券ID
    private BigDecimal userId;//执有用户ID
    private String code;//编码
    private Integer timeType;//使用时间，1自定义时间段，2不限

    private String openCourseIds;//免费直播程ID串，coupon表中有condition=6时有数据
    private Integer settingStatus;//1设置 2不设置
    private String courseIds;//限制使用的课程ID串
    private Double minAmount;//使用的最低限额
    private String shopData;//限制的商品数据的JSON串

    private Date beginTime;//开始时间，timeType=1起使用
    private Date endTime;//结束时间，timeType=1起使用
    private Integer type;//类型，1折扣券，2定额券
    private Double limitAtion;//优惠限额，type=1时为折扣，type=2时为金额

    private Integer receiveType;//领取方式，1用户领取，2定向发放
    private Integer orientType;//针对发放方式，1针对用户，2针对场景
    private Integer userType;//针对用户的用户类型，1全部用户，2部分用户

    private Integer conditions;//获取条件，1手动发放，2新用户注册后自动获取，3学员生日获取，4邀请注册获取，5消费任意金额获取，6免费直播发放，7活动 8积分兑换
    private Date useTime;//使用时间，
    private BigDecimal orderId;//订单ID
    private String orderNo;//订单号
    /**
     * 搜索使用
     */
    private Date beginUseTime; //用户使用开始时间
    private Date endUseTime;//用户使用结束时间时间
    /**
     * 扩展属性
     */
    private Map<String,Object> user;//持卷用户名
    private OpCoupon coupon;//优惠券信息
    private TreeMap<String,Object> couponMap;//优惠券Map   api接口专用

    private Integer source;//请求来源，1前台，2后台
    @SqlExclude
    private String receiveStatus;//是否可领取，Y可领取，N不可领取
    /**
     * status 状态，1正常，2冻结，3删除 ，4作废  ，5使用
     * createTime 创建时间
     * updateTime 修改时间
     */

}
